package ArrayListTest.homework;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 集合排序：字符串
 */
public class SortString {
    public static void main(String[] args) {
        /*
        List<String> list = new ArrayList<>();
        list.add("xia");
        list.add("pen");
        list.add("You");
        list.add("wxx");
        System.out.println("list:"+list);//list:[xia, pen, you, wxx]
        Collections.sort(list);
        System.out.println("list:"+list);//list:[You, pen, wxx, xia]
         */

        List<String> list = new ArrayList<>();
        list.add("小盆友");
        list.add("大熊的哥哥的弟弟");
        list.add("李刚的叔叔");
        System.out.println("list：" + list);//list：[小盆友, 大熊的哥哥的弟弟, 李刚的叔叔]

        //英文字符串排序时，会按首字母的ASCII码来排.若首字母相同，则比较第2个字母的ASCII码，以此类推
        Collections.sort(list);
        System.out.println("list：" + list);//list：[大熊的哥哥的弟弟, 小盆友, 李刚的叔叔]

        /**
         * 返回值>0,o1>o2,升序
         * 返回值<0,o1<o2,降序
         * 返回值=0,o1=o2
         */
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length() - o2.length();//list:[小盆友, 李刚的叔叔, 大熊的哥哥的弟弟]:升序
                //return o2.length()-o1.length();//list:[大熊的哥哥的弟弟, 李刚的叔叔, 小盆友]:降序
            }
        });
        System.out.println("list:" + list);
    }
}
